{"text_format":"1","workbook":"xlsx","n_sheets":9,"sheets":["Getting Started","Setup","Script","Results Data","Trace Data","Calc","Report","Version","Utils"],"not_rendered":{"charts":0,"images":5,"macros":1,"external_links":1,"defined_names":4,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Getting Started","index":0,"n_rows":304,"n_cols":1,"rows_kept":304,"cut":false,"hidden":false,"merged":[]}
["VIAVI Instrument Programming Tool - Getting Started"]
[]
["Note:  Option 847 must be installed on the test set for the VIP Tool™ to operate."]
["To purchase Option 847, please contact a VIAVI Solutions Radio Test Sales Expert with your model and serial number. "]
["Find your closest Radio Test Sales Expert"]
[]
["The VIP Tool™ provides a method to efficiently connect to a VIAVI instrument through an Ethernet socket and control the "]
[" instrument using remote commands entered into the Scripts worksheet to control and receive data from the instrument."]
["The commands can be placed in sequence to build an automated test routine."]
[]
["Warranties: The Viavi Instrument Programming Tool (“VIP Tool”) is provided “as-is.”  There are no warranties, either express,"]
["implied, contractual, or statutory with respect to the merchantability or fitness applicable to the VIP Tool.  The user agrees that no "]
["warranty has been expressed or implied by VIAVI and that the user understands that the VIP Tool is being  provided “as-is.”  The"]
["user hereby expressly waives any claim for incidental or consequential damages, including damages to connected equipment,"]
["from use of the VIP Tool."]
[]
["VIAVI VIP Tool License Agreement"]
[]
["Table of Contents"]
["Introduction to the VIP Tool"]
["The VIP Tool Ribbon"]
["The Embedded Worksheets"]
["The Report Worksheets"]
["The Setup Worksheet"]
["The Script Worksheet"]
["The Results Data Worksheet"]
["The Trace Data Worksheet"]
["Editing and Executing a Script"]
["VIP Tool Resources"]
["VIAVI RCI Document Resources"]
[]
["Introduction to the VIP Tool"]
["The VIP Tool provides a method to connect to and control a VIAVI instrument through a TCP/IP socket.  The VIP Tool allows the "]
["user to create and edit a script that can then be used to programmatically perform automated tasks with the instrument."]
[]
["A script consists of RCI commands, which control the instrument, and VIAVI Instrument Programming keywords that are used to "]
["control the flow and output of the script."]
[]
["The VIAVI Instrument Programming Language provides syntax that allows responses from the tool  to be sent and easily organized "]
["on a separate sheet within the VIP Tool workbook.  An additional output of the VIP Tool is an organized sheet of trace data "]
["generated by the instrument when it is queried for such data.  Trace data consists of the data that are used to create the various "]
["graphs displayed on the instrument such as Channel Analyzer, Oscilloscope, Distribution plots, etc."]
[]
["The VIP Tool currently supports operation with the VIAVI 3900 Series, 8800 Series and 3550 series of radio test sets."]
[]
["Back to Top"]
[]
["The VIP Tool Ribbon"]
["The VIP Tool Ribbon contains the controls for operating the VIP Tool.  The controls that appear on the ribbon are context"]
["specific,  depending on which VIP Tool sheet is selected for view.  For example, the Script sheet ribbon will contain all of the "]
["controls for creating, editing and debugging scripts.  The Setup sheet ribbon will contain controls for setting up a connection to the"]
[" instrument and for configuring paths to save and load various types of files.  A report sheet ribbon will contain controls for editing "]
["report sheets, such as showing and hiding tags, and for saving the report to PDF or CSV formats."]
[]
["Back to Top"]
[]
["The Embedded Worksheets"]
["The VIP Tool workbook contains of five embedded worksheets:"]
["1.  This Getting Started sheet."]
["2.  The Setup worksheet is used to configure the connection to the instrument and set paths for files"]
["3.  The Script worksheet is used for editing and debugging the script."]
["4.  The Results Data worksheet is used to monitor measurement data. "]
["5.  The Trace Data worksheet is used to store trace data returned from the instrument when a trace query command is executed."]
[]
["The Report Worksheets"]
["Unlike the embedded worksheets, Report worksheets are not write protected and can be freely edited, deleted and imported."]
["Report sheets are intended for two functions:  creating reports and reserving a sheet to perform Excel calculations used by the "]
["script.  When first downloaded, the VIP Tool worksheet contains two report reports sheets - one sheet is named 'Calc' and the"]
["other sheet is named 'Report'.  Other sheets can be imported using the Import XLS Sheet button on the Script sheet Tool Ribbon."]
[]
["Back to Top"]
[]
["The Setup Worksheet"]
["The Setup Worksheet provides the means to configure the connection setup, default paths for various files, and whether a saved "]
["PDF report opens immediately in a local PDF viewer or is saved in the background.  The title of test reports and which sheet"]
["will be saved as a report are also configured on the Setup Sheet."]
[]
["To configure the connection to an instrument, these steps must be followed:"]
[]
["1.  Select the instrument model to connect to from the Select Model dropdown menu."]
["2.  Enter the IP address of the instrument into the IP field.  An example IP address is 10.10.10.104"]
["3.  The port number is automatically selected, based upon the model selected.  However, if 39XX is selected as the model, be"]
["sure to check that its port number is set to the port number displayed in the 39XX Port Number field.  The 39XX port number "]
["can be set to a different value on the instrument itself.  There are instructions for checking the 39XX port number on the "]
["instrument on the Setup sheet."]
[]
["After entering values in either the IP Address or 39XX Port fields, be sure to press the ENTER key or click outside of the field"]
["to ensure the setting has been entered into the worksheet.  Until the settings have been fully entered through this action, the VIP Tool"]
["cannot connect to the instrument."]
[]
["Once the IP address and Port number are configured, the Check Connection button on the VIP Tool Ribbon can be pressed "]
[" to verify that the program is able to communicate with the instrument.  If the connection is successful, it is verified  by a message"]
[" box, and the instrument serial number and software version will be displayed in the Serial Number and Software Version fields"]
["on the Setup worksheet.  If, however, the VIP Tool cannot communicate with the instrument, the message \"Connection "]
["Unsuccessful\" will appear.  It may take up to 20 seconds for this message to appear if the VIP Tool cannot succesfully connect"]
["to the instrument."]
[]
[]
["Back to Top"]
[]
["The Script Worksheet"]
["The Command and Argument Columns"]
["The Script worksheet is used for assembling sequences of commands, queries and keywords into a script, editing the script, and"]
[" running the script.  It consists of four columns.  The number of rows for entering control commands is the maximum number of rows"]
["allowed by Excel."]
[]
["In general, SCPI RCI commands consist of a command and an argument to the command.  As an example, the"]
["command :RF:GENerator:FREQuency 125 MHz consists of the command :RF:GENerator:FREQuency, which denotes what"]
["parameter is to be controlled (in this case, RF generator frequency) and the argument 125 MHz, which provides the value to assign"]
["to the RF generator frequency.  The command :RF:GENerator:FREQuency should therefore be placed in the Command"]
["column, and its argument 125 MHz should be placed in the adjacent Argument column on the same row."]
[]
["An RCI query, which is used to request data from the instrument, may rarely optionally provide argument functionality, but, in general,"]
["no argument is required for a query.  To follow the above example, :RF:GENerator:FREQuency? is the matching query to the RF"]
["generator command example; it is requesting the RF generator frequency value.  This query has no argument, so"]
[":RF:GENerator:FREQuency? is entered into the command column, and its adjacent Argument row entry is left blank."]
[]
["Keywords are also entered into the command column.  If a keyword requires or supports an argument, then the argument must also"]
["be entered into the argument column."]
[]
["The Reply Column"]
["In most cases, the Reply column will display all returned data from a query, in the format that it was received.  Note that when a query"]
["is executed, the reply from the query, as well as the query command and argument, will also be copied to the Results Data"]
["worksheet.  If the reply to the query contains multiple values separated by a comma, the Results Data worksheet will separate each"]
["individual datum into separate columns. "]
[]
["Trace data, which is CSV data returned from a trace query, are not displayed in the Reply column; instead, the number of points or "]
["number of pairs of received trace data will be displayed in the Reply column.  The trace data are copied to the Trace Data "]
["worksheet."]
[]
["Reply data are automatically erased each time a Script or a selected sequence of commands is executed."]
[]
["The Info Column"]
["The Info column is used to display information about a command, query or keyword executed on a row."]
["If the instrument reports an error message, or if the program encounters an error, the Error column entry will display the error "]
["message.  When the program encounters an error message, it stops execution on the step on which it encountered the error."]
[]
["Info messages are automatically erased each time a Script or a selected sequence of commands is executed."]
[]
["Back to Top"]
[]
["The Results Data Worksheet"]
["Measurement reply data are the data returned by a query.  On the Script worksheet, the data are recorded in the reply column.  "]
["Measurement reply data, with the exception of trace data, are also recorded on the results data sheet.   Trace data are a special"]
["category of reply data that are sent to the Trace Data worksheet (discussed below)."]
[]
["Argument data supplied by the info keyword will also be copied to the Results Data worksheet."]
[]
["Measurement reply data can consist of a single datum, or as several data elements, separated by commas (termed Comma "]
["Separated Values or CSV).  One function of the Results Data worksheet is to separate any CSV into separate columns to make"]
["accessing a particular datum in a CSV string an easier process."]
[]
["The data are separated out into specific columns on the Results Data worksheet:"]
[]
["Column A contains the Date the data were requested from the instrument."]
["Column B contains the Time the data were requested from the instrument."]
["Column C contains the query command that was used to access the data."]
["Column D will contain any argument that was used with the query."]
["Column E will contain the first received datum.  If the reply was a single datum, this will be the only column containing reply data."]
["If the reply was CSV data, Column E will contain the first datum in the CSV string."]
["Columns F and onward will each contain a single datum from any received CSV string, in the order of the data in the CSV string."]
[]
["Following the reply data, Column E will contain the total time the script or selected commands took to complete."]
[]
["If a trace query was sent, the data in Column E will indicate the number of points or pairs of data received by the trace query."]
["Some trace data contain additional status byte or fail byte information.  If the trace data contain that information, it will appear "]
["on the Results Data worksheet in addition to the number of points information."]
[]
["Results data are automatically erased each time a Script or a selected sequence of commands is executed."]
[]
["Back to Top"]
[]
["The Trace Data Worksheet"]
["Trace data are data returned from a specific trace query.  Trace data consist of Comma Separated Values (CSV).  Trace data can"]
["consist of oscilloscope data, spectrum or channel analyzer data, or data from various graphs such as Distribution or Power Over "]
["Time, as examples. "]
[]
["Trace data consist of two components:  X Axis (horizontal) data, which can represent elements such as frequency or time,"]
["depending on the type of trace, and Y Axis (vertical) data, which generally represent some value of amplitude.  When trace data are"]
["encountered by the program, the X axis and Y axis data are separated into two separate rows on the Trace Data worksheet.  The"]
["\"upper\" row of a pair of trace data rows will contain the X axis values, and the \"lower\" row will contain the Y axis values.  The trace "]
["data row pairs are separated from preceding or succeeding trace data row pairs by a blank row."]
[]
["The X axis data are separated into specific columns on the Trace Data worksheet:"]
[]
["Column A contains the Date the trace data were requested from the instrument."]
["Column B contains the Time the trace data were requested from the instrument."]
["Column C contains the number of trace data elements returned (and therefore the number of trace data columns on the worksheet)."]
["Column D contains the X axis designation, and horizontal units of the X axis data.\n\n"]
["Column E is left blank.  This makes it easier to select the trace data with the cntrl-A key combination provided by Excel."]
["Columns F and higher contain the X axis trace data.  The number of columns occupied by data is equal to the value in Column C."]
[]
["The Y axis data are separated into specific columns on the Trace Data worksheet:"]
[]
["Column A contains the Date the trace data were requested from the instrument."]
["Column B contains the Time the trace data were requested from the instrument."]
["Column C contains the query command that was used to access the data."]
["Column D contains the Y axis designation of the X axis data.\n\n"]
["Column E is left blank.  This makes it easier to select the trace data with the cntrl-A key combination provided by Excel."]
["Columns F and higher contain the Y axis trace data.  The number of columns occupied by data is equal to number of X data values."]
[]
["Trace data are automatically erased each time a Script or a selected sequence of commands is executed."]
[]
["Note that X data are generally returned by most RCI commands.  In the event that X data is not available for a specific trace query,"]
["the program calculates the X data and inserts it into the Trace Data worksheet."]
[]
["In the rare event that X data alone is available through a query, the program ignores the data and does not store it in the Trace Data"]
["worksheet when the query is sent as a commmand.  When the Y data query is executed for the function, the program will "]
["automatically send the X data query, and store the X data results with the Y data in the format described above."]
[]
["Back to Top"]
[]
["Editing and Executing a Script"]
["A script consists of a vertical sequence of RCI commands and program keywords entered into the Argument and Command "]
["of the Script worksheet."]
[]
["If more than one row of commands/keywords is selected for execution, the program will sequentially execute the commands or  "]
["keywords until it reaches the end of the selection, encounters a blank entry in the command column, or encounters the end keyword."]
["When a query is encountered, the return data will be displayed in the Reply column, and will be copied to the Results Data "]
["worksheet.   In the case of a trace data query, the number of points of data will be reported in the reply column and the Results Data"]
["worksheet.  Trace data will be copied to the Trace Data worksheet.  If the row is 'commented out' by the \"/\" keyword, the program"]
["will not execute the row and will skip to the next row.  If the program encounters an error message it will cease execution at the row"]
["where it encountered the error message."]
[]
["Note that only a single command can occupy a row.  The program does not support concantenated commands.  Any "]
["concantenation of multiple single commands on a single row will generate an error and the script will stop at that point.  "]
[]
["If a command is placed in the command column without a preceding colon, a preceding colon will automatically be appended to the"]
["command.  This does not affect IEE-488 commands such as *OPC or *IDN?, nor will it affect keywords or commands that have"]
["been 'skipped' with the special \"/\" keyword."]
[]
["When the Run Script button is pressed, the program will start at row 2 of the command column and begin sequentially executing"]
["the script from that point. This allows a dedicated starting point for any script."]
[]
["When the Run From Here button is pressed, the program will start at the currently selected row and begin sequentially executing the"]
["the script from that point.  This allows the user to test blocks of script without having to select the entire block to execute it, or for "]
["testing blocks of script that are separated from other portions of the script by a blank row or end keyword."]
[]
["To execute a single command, or a subset of contiguous commands in the script, select the command or subset of commands and"]
["press the Run Selected button.  Only the selected command(s) will be executed.  Note that if more than one command is selected,"]
["the selected commands must be contiguous."]
[]
["Pressing the Toggle Comments button will 'comment out' an uncommented row or selection of rows, or 'uncomment' a commented "]
["row or selection of rows.  This function automates the placement of the '/' keyword.  The program will skip any commented row "]
["and will not execute the command or keyword on that row."]
[]
["Pressing the Abort Execution button will halt execution of the script at its current position in the script."]
[]
["To insert one or more rows, press the Insert Rows button."]
[]
["To delete one or more rows, press the Delete Rows button."]
[]
["The contents of the Reply column, Info column, Results Data worksheet and Trace Data worksheet will be erased when the Clear"]
["Results button is pressed, or each time a script or selected sequence of commands is executed."]
[]
["The entire script and all results can be removed by pressing the Remove Script button. "]
[]
["Note:  There is no 'undo' function on the Scripts worksheet.  "]
[]
["Back to Top"]
[]
["VIP Tool Resources"]
["VIAVI provides a number of resources at our website.  On our VIP Tool website, you will find the VIP Tool Operations Manual"]
["which is a complete guide to using this tool, including a complete reference to the VIAVI Intrument Programming Language. "]
["The operations manual provides plenty of examples of using the langugage in the VIP Tool.  Also on our VIP Tool website"]
["there are videos, sample scripts, sample reports and more to get you started on your VIP Tool project."]
[]
["VIP Tool Resources"]
[]
["Back to Top"]
[]
["VIAVI RCI Document Resources"]
[]
["VIAVI 3900 Series RCI Document Resources"]
["The key to writing scripts is good Remote Command Interface documentation.  In the case of the VIAVI 39XX models, the RCI"]
["commands can be found in the Help system that is integrated into the instrument."]
[]
["Of course, it's always good to have documents to reference.  All of the 39XX Remote Programming manuals can be downloaded "]
["from the following links:"]
[]
["3900 Series Digital Radio Test Set Remote Programming Manual"]
["Remote Programming Manual: 3900 Series Digital Radio Test Set P25"]
["Remote Programming Manual: 3900 Series Digital Radio Test Set DMR"]
["Remote Programming Manual: 3900 Series Digital Radio Test Set dPMR"]
["Remote Programming Manual: 3900 Series Digital Radio Test Set NXDN"]
["Remote Programming Manual: 3900 Series Digital Radio Test Set TETRA"]
["Remote Programming Manual: 3900 Series Digital Radio Test Set ARIB STD-T98"]
["Remote Programming Manual: 3900 Series Digital Radio Test Set HPD®"]
[]
["VIAVI 8800 Series RCI Document"]
["The VIAVI 8800 Series RCI document can be dowloaded from the following link:"]
[]
["8800 Digital Radio Test Set RCI Programming Manual"]
[]
["VIAVI 3550 Series RCI Document"]
["The VIAVI 3550 Series RCI document can be dowloaded from the following link:"]
[]
["3550/3550R RCI Manual"]
[]
[]
["Back to Top"]
["  \n\n\n   \n\n\n    \n\n\n     "]
["© 2021 VIAVI Solutions"]
[" \n\n\n   \n\n\n \n\n\n"]

{"sheet":"Setup","index":1,"n_rows":26,"n_cols":11,"rows_kept":26,"cut":false,"hidden":false,"merged":[[24,4,24,6],[25,4,25,6],[18,4,18,6],[21,4,21,6],[19,4,19,6],[22,4,22,6],[7,5,7,6],[8,5,8,6],[9,4,9,5],[12,4,12,6],[13,4,13,6],[12,1,12,2],[13,1,13,2],[15,1,15,2],[15,4,15,6],[16,4,16,6]]}
[null,null,null,null,null,null,null,"Calc",null,null,1234]
[null,"Select Model:","39XX",null,null,null,null,"Report"]
[null,{"$f":"C2 & \" \" &  \"IP Address:\"","v":"39XX IP Address:"}]
[]
[null,{"$f":"C2 & \" \" & \"Port Number:\"","v":"39XX Port Number:"},1234]
[]
[]
[null,"Serial Number",null,null,"Test Name"]
[null,"Software Version",null,null,"Report Sheet","Report"]
[null,null,null,null,"Open PDF Report On Save",null,"Off"]
[]
[]
[null,"After entering settings, press the ENTER key or click outside of the ",null,null,"Report PDF File Path"]
[null,"entry field to complete entry."]
[]
[null,"The default 39XX Port Number is 1234.  If the port number has been",null,null,"Report CSV File Path"]
[null,"changed from the default value on the instrument, the 39XX Port Number"]
[null,"field on this page must be set to match the port number on the instrument."]
[null,null,null,null,"Script File Path"]
[null,"Steps To verify the port number on the 39XX instrument:"]
[]
[null,"1.  Press the UTILS key.",null,null,"Script Module File Path"]
[null,"2.  Select 'Hardware Settings' "]
[null,"3.  Select 'Remote' from the floating menu."]
[null,"4.  The port number will be displayed in the 'TCP/IP Port' Field on the",null,null,"Import/Export Sheet Path"]
[null,"      Remote menu."]

{"sheet":"Script","index":2,"n_rows":327,"n_cols":4,"rows_kept":327,"cut":false,"hidden":false,"merged":[]}
["Command","Argument","Reply","Info Message"]
["*idn?","<TestUnit>=Reply3"]
["Select_Cell","(Report_A1)"]
["RunSub","Check_For_Defaults"]
["If","(Report_L3) = \"Update Sheet\""]
["RunSub","Update_Sheet"]
["END",""]
["EndIf",""]
["RunSub","DMR_Repeater_Tests"]
["END",""]
[]
[]
[]
["#",""]
["# Digital DMR Repeater Test",""]
["#",""]
["Sub","DMR_Repeater_Tests"]
["# Set active values to selected Repeater",""]
[":System:Load","\"\"DMR\"\""]
["Delay","2"]
["*rst",""]
["Set_Counter1","<RptrNum>"]
["If","Counter1 <= 0"]
["Pause","Invalid Repeater Number      "]
["END",""]
["ElseIf","Counter1 > 10"]
["Pause","Invalid Repeater Number      "]
["END",""]
["EndIf",""]
["<Model>=","<Model_Counter1>"]
["<SN>=","<SN_Counter1>"]
["<RptrTX>=","<RptrTX_Counter1>"]
["<RptrRX>=","<RptrRX_Counter1>"]
["<CC>=","<CC_Counter1>"]
["<CCA_Counter1>=","<CC_Counter1>"]
["<SNA_Counter1>=","<SN_Counter1>"]
["<RptrTXA_Counter1>=","<RptrTX_Counter1>"]
["<RptrRXA_Counter1>=","<RptrRX_Counter1>"]
["<CCA_Counter1>=","<CC_Counter1>"]
["<modela_counter1>=","<Model_Counter1>"]
["#Clear any previous results",""]
["Start_Timer_1",""]
["If","<Execute> = 1"]
["Pause"," Establish Test Configuration 1                "]
["<poww>=","0"]
["<freqerr>=","0"]
["<fskerr>=","0"]
["<symbdev>=","0"]
["<magerr>=","0"]
["<txber>=","0"]
["<rxsens>=","0"]
["Else",""]
["Pause","Establish Test Configuration 2                "]
["<poww2>=","0"]
["<freqerr2>=","0"]
["<fskerr2>=","0"]
["<symbdev2>=","0"]
["<magerr2>=","0"]
["<txber2>=","0"]
["<rxsens2>=","0"]
["Endif",""]
["# Establish manual settings",""]
["RunSub","RF_GEN_Off"]
["Display_Message",""]
["Message1","Zeroing RF Power Meter"]
["RunSub","Zero_RF_Power_Meter"]
["<reptxfreq>=","<RptrTX>"]
["<reprxfreq>=","<RptrRX>"]
["[CC]=","<CC>"]
["Message1","Configuring DMR Generator"]
["RunSub","Select_DMR_Generate_Mode"]
["# Configure the Receiver",""]
["Message1","Configuring DMR Receiver"]
["Runsub","Select_DMR_Receive_Mode"]
["#",""]
["#Set Cable Loss values based on Execute Config Entry",""]
[":Configure:Offset:Analyzer:Enable","1"]
[":Configure:Offset:Generator:Enable","1"]
["If","<Execute> = 1"]
[":Configure:Offset:Analyzer:Value","(Report_D18)"]
[":Configure:Offset:Generator:Value","(Report_D19)"]
["Else",""]
[":Configure:Offset:Analyzer:Value","(Report_D36)"]
[":Configure:Offset:Generator:Value","(Report_D37)"]
["EndIf",""]
[":RF:Generator:CH1:Level","(Report_D20)"]
[":RF:Analyzer:Frequency","<RptrTX>"]
[":RF:Generator:CH1:Frequency","<RptrRX>"]
["#",""]
["Close_Message",""]
["RunSub","RF_GEN_On"]
["RunSub","Wait_For_Transmit"]
["#Take the measurements",""]
["RunSub","Measure_DMR"]
["If","<Execute> = 1"]
["<poww>=","[poww]"]
["<poww_Counter1>=","[poww]"]
["<freqerr>=","[freqerr]"]
["<freqerr_Counter1>=","[freqerr]"]
["<fskerr>=","[fskerr]"]
["<fskerr_Counter1>=","[fskerr]"]
["<symbdev>=","[symbdev]"]
["<symbdev_Counter1>=","[symbdev]"]
["<magerr>=","[magerr]"]
["<magerr_Counter1>=","[magerr]"]
["<txber>=","[txber]"]
["<txber_Counter1>=","[txber]"]
["<rxsens>=","[rxsens]"]
["<rxsens_Counter1>=","[rxsens]"]
["Else",""]
["<poww2>=","[poww]"]
["<poww2_Counter1>=","[poww]"]
["<freqerr2>=","[freqerr]"]
["<freqerr2_Counter1>=","[freqerr]"]
["<fskerr2>=","[fskerr]"]
["<fskerr2_Counter1>=","[fskerr]"]
["<symbdev2>=","[symbdev]"]
["<symbdev2_Counter1>=","[symbdev]"]
["<magerr2>=","[magerr]"]
["<magerr2_Counter1>=","[magerr]"]
["<txber2>=","[txber]"]
["<txber2_Counter1>=","[txber]"]
["<rxsens2>=","[rxsens]"]
["<rxsens2_Counter1>=","[rxsens]"]
["Endif",""]
["#",""]
["RunSub","RF_GEN_Off"]
["RunSub","Wait_For_No_Transmit"]
["Stop_Timer_1",""]
["Total_Timer_1",""]
["Pause","Test Complete                    "]
["EndSub",""]
[]
[]
["#RF Generator ON",""]
["Sub","RF_GEN_On"]
[":RF:Gen:Enable","1"]
["Delay","0.5"]
[":Transmit:Sync:Mode","Synchronized"]
["EndSub",""]
[]
["#RF Generator Off",""]
["Sub","RF_GEN_Off"]
[":Transmit:Sync:Mode","Direct"]
["Delay","0.5"]
[":RF:Gen:Enable","0"]
["EndSub",""]
[]
["#DMR Generate",""]
["Sub","Select_DMR_Generate_Mode"]
[":RF:Generator:CH1:Lev","-50"]
[":Transmit:Protocol","dmr"]
[":Transmit:Sync:Mode","Synchronized"]
[":Transmit:Slot1:Pattern","STDIB1031"]
["# Color Code 0-15",""]
[":Transmit:CC","[CC]"]
[":Transmit:Slot","Slot1"]
[":Transmit:CallID","16777215"]
[":Configure:Offset:Generator:Enable","ON"]
["If","<Execute> = 1"]
["# Dual Port Test - Out is GEN",""]
[":RF:GEN:Port","GEN"]
["Else",""]
["# Single Port Test with Duplexer - Out is TR",""]
[":RF:GEN:Port","TR"]
["EndIf",""]
["#",""]
["EndSub",""]
[]
["#",""]
["# Zero the RF Power Meter",""]
["Sub","Zero_RF_Power_Meter"]
[":RF:Power:Detector:ZERO","1"]
["Delay","2"]
["EndSub",""]
[]
[]
["#DMR Receive Mode",""]
["Sub","Select_DMR_Receive_Mode"]
[":Receive:Protocol","dmr"]
[":Receive:Slot","Slot1"]
[":Meters:BER:Pattern","STDIB1031"]
[":RF:Analyzer:Port","TR"]
[":Configure:RF:Analyzer:TRBPower:Units","W"]
[":Limits:RF:TRBPower:Upper:Enable","0"]
[":Limits:RF:TRBPower:Lower:Enable","0"]
[":Limits:Power:Lower:Enable","0"]
[":Limits:Power:Upper:Enable","0"]
[":Configure:Port:Loudspeaker","OFF"]
[":Configure:Offset:Analyzer:Enable","ON"]
[":CA:Vertical:VDIV","10 dB"]
[":CA:Vertical:Level","40 dBm"]
[":CA:Horizontal:Frequency:Span","5MHz"]
[":Display:Tile2:Name","\"UUT Measurements\""]
[":Display:Tile3:Name","\"Decode\""]
[":Display:Tile4:Name","\"Distribution\""]
[":Display:Tile5:Name","\"Channel Analyzer\""]
["EndSub",""]
[]
["#",""]
["# Wait until the Power meter shows >0.09 watts","Key the Transmitter"]
["#",""]
["Sub","Wait_For_Transmit"]
["Wait_For_Transmit_On","Keying the Transmitter"]
["EndSub",""]
[]
["#",""]
["# Wait until the Power meter shows <0.05 watts","Unkey the Transmitter"]
["#",""]
["Sub","Wait_For_No_Transmit"]
["Wait_For_Transmit_Off","Unkeying the Transmitter"]
["EndSub",""]
[]
["#",""]
["#  This Subroutine measures Power, Frequency, Mod Fid, Symbol Dev and TX BER",""]
["#",""]
["Sub","Measure_DMR"]
["Display_message",""]
["Message1","Taking Digital Measurements"]
["Delay","4"]
["#",""]
[":Meters:BER:Averaging","5"]
["Do",""]
[":Fetch:RF:ANAL:TRBP?\t","[poww]=reply4"]
["ExitDo","[poww] > 1"]
["Loop",""]
["#",""]
["Delay","3"]
[":meters:FCR:Status?","[freqerr]=reply5"]
["#",""]
[":Meters:FSKErr:Status?","[fskerr]=reply5"]
["#",""]
[":Meters:SymDev:Status?","[symbdev]=reply5"]
["#",""]
[":Meters:Mag:Status?","[magerr]=reply5"]
["Do",""]
[":METER:BER:STAT?\t","[txber]=reply5"]
["ExitDo","[txber] < 1"]
["Loop",""]
["#",""]
["Message1",""]
["Message1","Measuring RX Sensitivity"]
["If","<Execute> = 1"]
["set_counter2","<RXSensLvl1>"]
["Else",""]
["set_counter2","<RXSensLvl2>"]
["EndIf",""]
[":RF:Generator:CH1:Level","counter2"]
["Delay","4"]
["#",""]
["DO",""]
["dec_counter2",""]
[":RF:Generator:CH1:Level","counter2"]
["Message2","counter2"]
["Delay","2"]
["#",""]
["Do",""]
["Delay","0.1"]
[":METER:BER:STAT?\t","[txber1]=reply5"]
["ExitDo","[txber1] > 4.8"]
["Do_Count",""]
["ExitDo","docount > 10"]
["Loop",""]
["#",""]
["ExitDo","[txber1] > 1.3"]
["ExitDo","counter2 = -126"]
["LOOP",""]
["#",""]
["[rxsens]=","counter2"]
["Message1",""]
["Close_message",""]
[":Meters:BER:Averaging","1"]
["EndSub\t",""]
[]
[]
["Sub","Update_Sheet"]
["# Set active values to selected Repeater",""]
["Set_Counter1","<RptrNum>"]
["If","Counter1 <= 0"]
["Pause","       Invalid Repeater Number      "]
["END",""]
["ElseIf","Counter1 > 10"]
["Pause","       Invalid Repeater Number      "]
["END",""]
["EndIf",""]
["<Model>=","<Model_Counter1>"]
["<SN>=","<SN_Counter1>"]
["<RptrTX>=","<RptrTX_Counter1>"]
["<RptrRX>=","<RptrRX_Counter1>"]
["<CC>=","<CC_Counter1>"]
["<CCA_Counter1>=","<CC_Counter1>"]
["<SNA_Counter1>=","<SN_Counter1>"]
["<RptrTXA_Counter1>=","<RptrTX_Counter1>"]
["<RptrRXA_Counter1>=","<RptrRX_Counter1>"]
["<CCA_Counter1>=","<CC_Counter1>"]
["<modela_counter1>=","<Model_Counter1>"]
["EndSub",""]
[]
["Sub","Check_For_Defaults"]
["If","<RptrNum>=\"\""]
["<RptrNum>=","1"]
["EndIf",""]
["If","<Execute>=\"\""]
["<Execute>=","1"]
["EndIf",""]
["If","<RXSensLvl1>=\"\""]
["<RXSensLvl1>=","-116"]
["EndIf",""]
["If","<RXSensLvl2>=\"\""]
["<RXSensLvl2>=","-115"]
["EndIf",""]
["If","<Model_1>=\"\""]
["<Model_1>=","\"ABC\""]
["EndIf",""]
["If","<SN_1>=\"\""]
["<SN_1>=","1234"]
["EndIf",""]
["If","<RptrTX_1>=\"\""]
["<RptrTX_1>=","100"]
["EndIf",""]
["If","<RptrRX_1>=\"\""]
["<RptrRX_1>=","200"]
["EndIf",""]
["If","<CC_1>=\"\""]
["<CC_1>=","1"]
["EndIf",""]
["EndSub",""]

{"sheet":"Results Data","index":3,"n_rows":0,"n_cols":0,"rows_kept":0,"cut":false,"hidden":false,"merged":[]}

{"sheet":"Trace Data","index":4,"n_rows":0,"n_cols":0,"rows_kept":0,"cut":false,"hidden":false,"merged":[]}

{"sheet":"Calc","index":5,"n_rows":0,"n_cols":0,"rows_kept":0,"cut":false,"hidden":false,"merged":[]}

{"sheet":"Report","index":6,"n_rows":50,"n_cols":26,"rows_kept":50,"cut":false,"hidden":false,"merged":[[104,6,104,7],[42,12,42,14],[43,12,43,14],[45,12,45,14],[46,2,46,4],[46,12,46,14],[48,12,48,14],[49,12,49,14],[74,2,74,7],[76,2,76,3],[77,2,77,3],[79,6,79,7],[40,12,40,14],[29,2,29,4],[29,12,29,13],[30,2,30,4],[30,12,30,13],[31,2,31,4],[32,12,32,14],[33,12,33,14],[35,12,35,14],[36,12,36,13],[37,2,37,4],[39,12,39,14],[28,12,28,13],[23,21,23,22],[23,23,23,24],[24,12,24,14],[24,21,24,22],[24,23,24,24],[25,21,25,22],[25,23,25,24],[26,21,26,22],[26,23,26,24],[27,12,27,15],[27,21,27,22],[27,23,27,24],[19,21,19,22],[19,23,19,24],[20,2,20,4],[20,21,20,22],[20,23,20,24],[21,11,22,16],[21,21,21,22],[21,23,21,24],[22,21,22,22],[22,23,22,24],[14,2,14,4],[16,18,16,25],[17,21,17,22],[17,23,17,24],[18,21,18,22],[18,23,18,24],[13,2,13,4],[4,3,4,4],[5,3,5,4],[5,18,6,25],[7,2,7,8],[7,18,7,25],[8,18,8,25],[9,2,9,4],[9,18,9,25],[10,18,10,25],[11,18,11,25],[12,18,12,25],[3,3,3,4],[0,13,0,14],[1,11,1,12],[1,13,1,14],[2,3,2,4],[2,11,2,12]]}
[]
[null,null,null,null,null,null,null,null,null,null,null,"Mode"]
[null,null,"3920 SN:",null,null,null,null,null,null,null,null,"Run Tests"]
[null,null,"Radio Model:"]
[null,null,"Radio SN:"]
[null,null,"Date",{"$f":"TODAY()","v":"2021-03-31"},null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Instructions"]
[]
[null,"Repeater","DMR Repeater Test",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"1. Select the DMR System on the 3920"]
[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"2. Set Execut Config to 1 to test without a duplexer and 2 to test with a duplexer."]
[null,"Execute Config","Test Repeater Configuration",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"3. Select the Repeater number from the Repeater List below."]
[null,null,"Repeater TX",null,"MHz",null,null,null,null,null,null,null,null,null,null,null,null,null,"4. Set Mode to Run Tests and then Run Script"]
[null,null,"Repeater RX",null,"MHz"]
[null,null,"CC",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Note: Yellow coded fields are user entries."]
[null,null,"Test Configuration 1"]
[null,null,"Dual Port / Direct Connect Test"]
[null,null,"Generator Atten",0,"dB"]
[null,null,"Cable 1 Loss (RX)",-0.44,"dB",null,null,null,null,null,null,null,null,null,null,null,null,null,"Repeater List"]
[null,null,"Cable 2 Loss (TX)",-0.37,"dB",null,null,null,null,null,null,null,null,null,null,null,null,null,"Repeater No.","Model","SN","Repeater TX",null,"Repeater RX",null,"CC"]
[null,null,"RX Path Loss",{"$f":"D16+D17","v":-0.44},"dB",null,null,null,null,null,null,null,null,null,null,null,null,null,1]
[null,null,"RX BER Test Lvl",-90,"dBm",null,null,null,null,null,null,null,null,null,null,null,null,null,2]
[null,null,"Digital Measurements",null,null,"Status",null,null,null,null,null,null,null,null,null,null,null,null,3]
[null,null,"Power",null,"W",{"$f":"IF(AND(D22>=O30,D22<=P30),\"PASS\",\"FAIL\")","v":"FAIL"},null,null,null,null,null,"Test Specifications",null,null,null,null,null,null,4]
[null,null,"Power",{"$f":"10*LOG(D22)+30","v":{"$error":"#NUM!"}},"dBm",null,null,null,null,null,null,null,null,null,null,null,null,null,5]
[null,null,"Frequency Error",null,"Hz",{"$f":"IF((ABS(D24)<=N26),\"PASS\",\"FAIL\")","v":"PASS"},null,null,null,null,null,null,null,null,null,null,null,null,6]
[null,null,"FSK Error",null,"%",{"$f":"IF(AND(D25>0.01,D25<=M34),\"PASS\",\"FAIL\")","v":"FAIL"},null,null,null,null,null,null,"Frequency Error Tolerance",null,null,null,null,null,7]
[null,null,"Symbol Deviation",null,"Hz",{"$f":"IF(AND(D26>=M38,D26<=O38),\"PASS\",\"FAIL\")","v":"FAIL"},null,null,null,null,null,null,"+/- ",250,"Hz",null,null,null,8]
[null,null,"Magnitude Error",null,"%",{"$f":"IF(D27<=M44,\"PASS\",\"FAIL\")","v":"PASS"},null,null,null,null,null,null,null,null,null,null,null,null,9]
[null,null,"TX BER",null,"%",{"$f":"IF(D28<=M41,\"PASS\",\"FAIL\")","v":"PASS"},null,null,null,null,null,null,"Power Tolerance",null,null,null,null,null,10]
[null,null,"RX Sesitivity",null,"dBm",{"$f":"IF(D29<=M47,\"PASS\",\"FAIL\")","v":"PASS"},null,null,null,null,null,null,"Frequency",null,"LL (W)","UL (W)"]
[null,null,null,null,null,null,null,null,null,null,null,null,"Direct",null,{"$f":"55-5.5","v":49.5},{"$f":"55+5.5","v":60.5}]
[null,null,"Test Configuration 2",null,null,null,null,null,null,null,null,null,"Duplexer",null,37.1,{"$f":"41.25+4.25","v":45.5}]
[null,null,"Single Port / Duplexer Connect Test"]
[null,null,"Cable 1 Loss (RX)",-0.44,"dB",null,null,null,null,null,null,null,"FSK Error %"]
[null,null,"Cable 2 Loss (TX)",-0.37,"dB",null,null,null,null,null,null,null,5]
[null,null,"Cable 3 Loss",-0.31,"dB"]
[null,null,"TX Loss",{"$f":"D35+D34","v":-0.67999999999999994},"dB",null,null,null,null,null,null,null,"Symbol Deviation (Hz)"]
[null,null,"RX Loss",{"$f":"D33+D35","v":-0.75},"dB",null,null,null,null,null,null,null,"LL (Hz)",null,"UL (Hz)"]
[null,null,"Digital Measurements",null,null,"Status",null,null,null,null,null,null,{"$f":"1944-194","v":1750},null,{"$f":"1944+194","v":2138}]
[null,null,"Power",null,"W",{"$f":"IF(AND(D39>=O31,D39<=P31),\"PASS\",\"FAIL\")","v":"FAIL"}]
[null,null,"Power",{"$f":"10*LOG(D39)+30","v":{"$error":"#NUM!"}},"dBm",null,null,null,null,null,null,null,"TX BER % Error"]
[null,null,"Frequency Error",null,"Hz",{"$f":"IF((ABS(D41)<=N26),\"PASS\",\"FAIL\")","v":"PASS"},null,null,null,null,null,null,5]
[null,null,"FSK Error",null,"%",{"$f":"IF(AND(D42>0.01,D42<=M34),\"PASS\",\"FAIL\")","v":"FAIL"}]
[null,null,"Symbol Deviation",null,"Hz",{"$f":"IF(AND(D43>=M38,D43<=O38),\"PASS\",\"FAIL\")","v":"FAIL"},null,null,null,null,null,null,"Magnitude Error (%)"]
[null,null,"Magnitude Error",null,"%",{"$f":"IF(D44<=M44,\"PASS\",\"FAIL\")","v":"PASS"},null,null,null,null,null,null,1]
[null,null,"TX BER",null,"%",{"$f":"IF(D45<=M41,\"PASS\",\"FAIL\")","v":"PASS"}]
[null,null,"RX Sesitivity",null,"dBm",{"$f":"IF(D46<=M50,\"PASS\",\"FAIL\")","v":"PASS"},null,null,null,null,null,null,"RX Sensitivity Direct Connect"]
[null,null,"Duplexer"]
[null,null,"Power Loss",{"$f":"D22-D39","v":0},"W"]
[null,null,"TX Insertion Loss",{"$f":"D23-D40","v":{"$error":"#NUM!"}},"dB",null,null,null,null,null,null,null,"RX Sensitivity Duplexer"]
[null,null,"RX Insertion Loss",{"$f":"D29-D46","v":0},"dB"]

{"sheet":"Version","index":7,"n_rows":5,"n_cols":1,"rows_kept":5,"cut":false,"hidden":false,"merged":[]}
["Version 1.1.0"]
["03/17/2021"]
[]
["VIP Tool Version Release Notes are available at the following link:"]
["VIP Tool Resources"]

{"sheet":"Utils","index":8,"n_rows":77,"n_cols":14,"rows_kept":77,"cut":false,"hidden":true,"merged":[]}
[null,null,null,"Calc",false,null,"<beginsave>","",null,"CALC",null,null,"REPORT"]
[null,null,null,"Report",true,null,"<RptrNum>","",null,null,null,null,"<beginsave>","2,2"]
[null,null,null,null,"",null,"<Execute>","",null,null,null,null,"<RptrNum>","9,2"]
[null,null,null,null,null,null,"<TestUnit>","",null,null,null,null,"<Execute>","11,2"]
[null,null,null,null,null,null,"<Model>","",null,null,null,null,"<TestUnit>","3,4"]
[null,null,null,null,null,null,"<SN>","",null,null,null,null,"<Model>","4,4"]
[null,null,null,null,null,null,"<RptrTX>","",null,null,null,null,"<SN>","5,4"]
[null,null,null,null,null,null,"<RptrRX>","",null,null,null,null,"<RptrTX>","11,4"]
[null,null,null,null,null,null,"<CC>","",null,null,null,null,"<RptrRX>","12,4"]
[null,null,null,null,340859752,null,"<poww>","",null,null,null,null,"<CC>","13,4"]
[null,null,null,null,null,null,"<freqerr>","",null,null,null,null,"<poww>","22,4"]
[null,null,null,null,null,null,"<fskerr>","",null,null,null,null,"<freqerr>","24,4"]
[null,null,null,null,null,null,"<symbdev>","",null,null,null,null,"<fskerr>","25,4"]
[null,null,null,null,null,null,"<magerr>","",null,null,null,null,"<symbdev>","26,4"]
[null,null,null,null,"",null,"<txber>","",null,null,null,null,"<magerr>","27,4"]
[null,null,null,null,"",null,"<RXSens>","",null,null,null,null,"<txber>","28,4"]
[null,null,null,null,null,null,"<poww2>","",null,null,null,null,"<RXSens>","29,4"]
[null,null,null,null,null,null,"<freqerr2>","",null,null,null,null,"<poww2>","39,4"]
[null,null,null,null,null,null,"<fskerr2>","",null,null,null,null,"<freqerr2>","41,4"]
[null,null,null,null,"882.3875",null,"<symbdev2>","",null,null,null,null,"<fskerr2>","42,4"]
[null,null,null,null,null,null,"<magerr2>","",null,null,null,null,"<symbdev2>","43,4"]
[null,null,null,null,null,null,"<txber2>","",null,null,null,null,"<magerr2>","44,4"]
[null,null,null,null,null,null,"<RXSens2>","",null,null,null,null,"<txber2>","45,4"]
[null,null,null,null,null,null,"<endsave>","",null,null,null,null,"<RXSens2>","46,4"]
[null,null,null,null,"False",null,"<RXSensLvl1>","",null,null,null,null,"<endsave>","51,10"]
[null,null,null,null,"False",null,"<RXSensLvl2>","",null,null,null,null,"<RXSensLvl1>","47,13"]
[null,null,null,null,null,null,"<Model_1>","",null,null,null,null,"<RXSensLvl2>","50,13"]
[null,null,null,null,null,null,"<Model_2>","",null,null,null,null,"<Model_1>","19,20"]
[null,null,null,null,null,null,"<Model_3>","",null,null,null,null,"<Model_2>","20,20"]
[null,null,null,null,"False",null,"<Model_4>","",null,null,null,null,"<Model_3>","21,20"]
[null,null,null,null,"False",null,"<Model_5>","",null,null,null,null,"<Model_4>","22,20"]
[null,null,null,null,null,null,"<Model_6>","",null,null,null,null,"<Model_5>","23,20"]
[null,null,null,null,null,null,"<Model_7>","",null,null,null,null,"<Model_6>","24,20"]
[null,null,null,null,"On",null,"<Model_8>","",null,null,null,null,"<Model_7>","25,20"]
[null,null,null,null,"Off",null,"<Model_9>","",null,null,null,null,"<Model_8>","26,20"]
[null,null,null,null,null,null,"<Model_10>","",null,null,null,null,"<Model_9>","27,20"]
[null,null,null,null,"No",null,"<SN_1>","",null,null,null,null,"<Model_10>","28,20"]
[null,null,null,null,null,null,"<SN_2>","",null,null,null,null,"<SN_1>","19,21"]
[null,null,null,null,null,null,"<SN_3>","",null,null,null,null,"<SN_2>","20,21"]
[null,null,null,null,null,null,"<SN_4>","",null,null,null,null,"<SN_3>","21,21"]
[null,null,null,null,null,null,"<SN_5>","",null,null,null,null,"<SN_4>","22,21"]
[null,null,null,null,"False",null,"<SN_6>","",null,null,null,null,"<SN_5>","23,21"]
[null,null,null,null,"",null,"<SN_7>","",null,null,null,null,"<SN_6>","24,21"]
[null,null,null,null,"False",null,"<SN_8>","",null,null,null,null,"<SN_7>","25,21"]
[null,null,null,null,null,null,"<SN_9>","",null,null,null,null,"<SN_8>","26,21"]
[null,null,null,null,null,null,"<SN_10>","",null,null,null,null,"<SN_9>","27,21"]
[null,null,null,null,null,null,"<RptrTX_1>","",null,null,null,null,"<SN_10>","28,21"]
[null,null,null,null,null,null,"<RptrTX_2>","",null,null,null,null,"<RptrTX_1>","19,22"]
[null,null,null,null,null,null,"<RptrTX_3>","",null,null,null,null,"<RptrTX_2>","20,22"]
[null,null,null,null,null,null,"<RptrTX_4>","",null,null,null,null,"<RptrTX_3>","21,22"]
[null,null,null,null,null,null,"<RptrTX_5>","",null,null,null,null,"<RptrTX_4>","22,22"]
[null,null,null,null,null,null,"<RptrTX_6>","",null,null,null,null,"<RptrTX_5>","23,22"]
[null,null,null,null,null,null,"<RptrTX_7>","",null,null,null,null,"<RptrTX_6>","24,22"]
[null,null,null,null,null,null,"<RptrTX_8>","",null,null,null,null,"<RptrTX_7>","25,22"]
[null,null,null,null,null,null,"<RptrTX_9>","",null,null,null,null,"<RptrTX_8>","26,22"]
[null,null,null,null,null,null,"<RptrTX_10>","",null,null,null,null,"<RptrTX_9>","27,22"]
[null,null,null,null,null,null,"<RptrRX_1>","",null,null,null,null,"<RptrTX_10>","28,22"]
[null,null,null,null,null,null,"<RptrRX_2>","",null,null,null,null,"<RptrRX_1>","19,24"]
[null,null,null,null,null,null,"<RptrRX_3>","",null,null,null,null,"<RptrRX_2>","20,24"]
[null,null,null,null,null,null,"<RptrRX_4>","",null,null,null,null,"<RptrRX_3>","21,24"]
[null,null,null,null,null,null,"<RptrRX_5>","",null,null,null,null,"<RptrRX_4>","22,24"]
[null,null,null,null,null,null,"<RptrRX_6>","",null,null,null,null,"<RptrRX_5>","23,24"]
[null,null,null,null,null,null,"<RptrRX_7>","",null,null,null,null,"<RptrRX_6>","24,24"]
[null,null,null,null,null,null,"<RptrRX_8>","",null,null,null,null,"<RptrRX_7>","25,24"]
[null,null,null,null,null,null,"<RptrRX_9>","",null,null,null,null,"<RptrRX_8>","26,24"]
[null,null,null,null,null,null,"<RptrRX_10>","",null,null,null,null,"<RptrRX_9>","27,24"]
[null,null,null,null,null,null,"<CC_1>","",null,null,null,null,"<RptrRX_10>","28,24"]
[null,null,null,null,null,null,"<CC_2>","",null,null,null,null,"<CC_1>","19,26"]
[null,null,null,null,null,null,"<CC_3>","",null,null,null,null,"<CC_2>","20,26"]
[null,null,null,null,null,null,"<CC_4>","",null,null,null,null,"<CC_3>","21,26"]
[null,null,null,null,null,null,"<CC_5>","",null,null,null,null,"<CC_4>","22,26"]
[null,null,null,null,null,null,"<CC_6>","",null,null,null,null,"<CC_5>","23,26"]
[null,null,null,null,null,null,"<CC_7>","",null,null,null,null,"<CC_6>","24,26"]
[null,null,null,null,null,null,"<CC_8>","",null,null,null,null,"<CC_7>","25,26"]
[null,null,null,null,null,null,"<CC_9>","",null,null,null,null,"<CC_8>","26,26"]
[null,null,null,null,null,null,"<CC_10>","",null,null,null,null,"<CC_9>","27,26"]
[null,null,null,null,null,null,null,null,null,null,null,null,"<CC_10>","28,26"]